Kubernetes(簡稱 K8s)是一個強大的容器編排平台,可以幫助我們管理和部署容器化的應用程式。在 K8s 中,我們使用 YAML 文件定義應用程式的部署和服務配置。本文將深入探討 deploy.yaml 和 service.yaml 檔案的重要性以及它們如何協助我們在 Kubernetes 環境中部署和運行應用程式。
deploy.yaml 檔案用於定義應用程式的部署配置。以下是一個簡單的 deploy.yaml 範例,用於部署一個容器化的應用程式:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app-image:latest
ports:
- containerPort: 80
在這個示例中,我們定義了一個名為 my-app-deployment 的 Deployment,它將運行 3 個 Pod 副本,每個 Pod 包含一個名為 my-app-container 的容器。我們指定了容器的映像以及它將監聽的端口。
service.yaml 檔案用於定義服務的配置,使我們能夠在叢集內部和外部訪問我們的應用程式。以下是一個簡單的 service.yaml 範例,用於創建一個 LoadBalancer 服務:
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
在這個示例中,我們定義了一個名為 my-app-service 的 Service,它將流量導向標有 app: my-app 標籤的 Pod。我們指定了 Service 將使用的端口,並將其類型設置為 LoadBalancer,以便在外部創建一個負載均衡器。
將您的 deploy.yaml 和 service.yaml 檔案創建在一個目錄中。
使用以下命令在 Kubernetes 中部署您的應用程式:
kubectl apply -f deploy.yaml
kubectl apply -f service.yaml
使用以下命令查看您的 Deployment 和 Service 的狀態:
kubectl get deployments
kubectl get services
如果使用了 LoadBalancer 服務,使用以下命令查看外部 IP 地址:
kubectl get services my-app-service